From: Kenichi Handa Date: Thu, 16 Apr 2009 01:38:35 +0000 (+0000) Subject: (xftfont_has_char): Special handling of `ja' and `ko' adstyle. X-Git-Tag: archive/raspbian/1%29.2+1-2+rpi1~1^2~421^2~822 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/www.github.com/%22bookmarks:///%22http:/www.example.com/cgi/%22https:/www.github.com/%22bookmarks:/?a=commitdiff_plain;h=bc722cb50668a8650e85024b3dfdf0e0f184ad70;p=emacs.git (xftfont_has_char): Special handling of `ja' and `ko' adstyle. --- diff --git a/src/xftfont.c b/src/xftfont.c index e533fd73791..af0feb9b7e6 100644 --- a/src/xftfont.c +++ b/src/xftfont.c @@ -467,16 +467,28 @@ xftfont_done_face (f, face) } } +extern Lisp_Object Qja, Qko; + static int xftfont_has_char (font, c) Lisp_Object font; int c; { struct xftfont_info *xftfont_info; + struct charset *cs = NULL; if (FONT_ENTITY_P (font)) return ftfont_driver.has_char (font, c); + if (EQ (AREF (font, FONT_ADSTYLE_INDEX), Qja) + && charset_jisx0208 >= 0) + cs = CHARSET_FROM_ID (charset_jisx0208); + else if (EQ (AREF (font, FONT_ADSTYLE_INDEX), Qko) + && charset_ksc5601 >= 0) + cs = CHARSET_FROM_ID (charset_ksc5601); + if (cs) + return (ENCODE_CHAR (cs, c) != CHARSET_INVALID_CODE (cs)); + xftfont_info = (struct xftfont_info *) XFONT_OBJECT (font); return (XftCharExists (xftfont_info->display, xftfont_info->xftfont, (FcChar32) c) == FcTrue);